#pragma once
#include "platform.h"
#include "hash_tables.h"
#include <string>
class GrfNode;
class GrfTreeNode;


class GrfTreeNode
{
	private: std::string m_name;
	public: HashTable<GrfTreeNode>* m_subdir; //FIXME
	private: GrfNode* m_ptr;
	private: GrfTreeNode* m_parent;

public:
	GrfTreeNode::GrfTreeNode(bool isdir, char* name, GrfNode* ptr, GrfTreeNode* parent);
	GrfTreeNode::~GrfTreeNode(void);

	size_t GrfTreeNode::grf_tree_list_node(GrfTreeNode** arr, size_t num);
	bool GrfTreeNode::isdir(void) const;
	const char* GrfTreeNode::name(void);
	uint32_t GrfTreeNode::count(void);
	GrfTreeNode* GrfTreeNode::parent(void);
	GrfNode* GrfTreeNode::file(void);

public:
	void GrfTreeNode::prv_grf_reg_tree_node(GrfNode* cur_node);
};
